package com.xinan.system.interceptor;

import com.jfinal.aop.Interceptor;
import com.jfinal.core.ActionInvocation;
import com.jfinal.core.Controller;
import com.xinan.system.curd.AuthUser;
import com.xinan.utils.Constants;

public class AuthInterceptor implements Interceptor {
    @Override
    public void intercept(ActionInvocation ai) {
        Controller c = ai.getController();
        AuthUser user = c.getSessionAttr(Constants.LOGIN_USER);
//        //过滤微信
//        if(ai.getActionKey().equals("/weixin")) {
//            ai.invoke();
//        }   else {
        if (user != null) {
            //如果已经登录过，则直接跳转到主页&& "GET".equalsIgnoreCase(c.getRequest().getMethod().toUpperCase())
            if (ai.getActionKey().equals("/login")) {
                c.setAttr("cnname", user.getCnname());
                c.setAttr("menus", user.get("menus"));
                c.render(Constants.INDEX_URL);
            } else {
                c.setAttr(Constants.USER_ORG, user.getOrgid());//可以在controler函数中随时获取
                c.setAttr(Constants.USER_NAME, user.getUsername());//可以在controler函数中随时获取
                c.setAttr(Constants.CN_NAME, user.getCnname());//可以在controler函数中随时获取
               /* boolean flag = false;
                List<Record> permList = user.get("perms");
                for(Record r : permList){
                    if(ai.getActionKey().startsWith(r.get("uri").toString())){
                        flag = true;
                        break;
                    }
                }
                if(flag){*/
                ai.invoke();
                /*}else {
                    c.render("login.html");
                }*/
            }
        } else {
            if (ai.getActionKey().equals("/login") && "POST".equalsIgnoreCase(c.getRequest().getMethod().toUpperCase())) {
                ai.invoke();
            } else {
                c.render("/WEB-INF/views/"+Constants.LOGIN_URL);
            }
        }
    }
//    }
}
